import requests
from bs4 import BeautifulSoup
r = requests.get("http://www.techlabplt.com:8080/BD-PC/static.html")
r.encoding='utf-8'
soup = BeautifulSoup(r.text, 'html.parser')
# 1、获取标签
# 输出标签（如title， a）
print(soup.title)
# 默认得到的第一个a标签
print(soup.a)
# 输出标签的名字
print(soup.a.name)
# 输出标签的父标签
print(soup.a.parent)
# 2、获取标签的名字
# 输出a标签的父标签的名字
print(soup.a.parent.name)
# 输出a标签的父标签的父亲标签的名字
print(soup.a.parent.parent.name)
# 3、获取标签的属性
# 输出a标签的属性
print(soup.a.attrs)
'''标签的属性：是标明标签特点的相关区，常以字典的形式来组成。
由于是字典，还可采用字典的方式对每一个属性进行信息的提取,如下列'''
#输出a标签的class属性值
print(soup.a.attrs['class'])
# 另外可以使用 type 方法查看类型，在bs4库中，将标签定义成了bs4.element.Tag类型。
print(type(soup.a.attrs))
print(type(soup.a))
# 4、获取标签的 Navigableastring 属性
# 输出a标签的 Navigableastring
print(soup.a.string)
'''查看网页源代码不难发现，p标签的内部其实还含有一个b标签
下面使用print输出p标签'''
print(soup.p)
'''
p标签的NavigableString输出直接跨过b标签，说明NavigableString是可以跨越多个标签层次的。
下面输出p标签的Navigableastring
'''
print(soup.p.string)
# 新建 beautifulsoup 对象
newsoup=BeautifulSoup("<b><!—this is a comment--></b><p>this is not a comment</p>","html.parser")
# 5、查看comment
# 输出comment
print(newsoup.b.string)
# comment是一种特殊的类型
print(type(newsoup.b.string))
